package proyecto2.src.armas;

import java.awt.Point;

import proyecto2.src.aplicacion.Nivel;
import proyecto2.src.entidades.Principal;
import proyecto2.src.municiones.MunicionEscudo;


public class Escudo extends arma {

	protected MunicionEscudo escudoActivo;
	protected boolean escudoActivadoActualmente;

	public Escudo(Nivel n) {
		super(2, 0, n);
		escudoActivadoActualmente = false;
	}


	public int[] obtenerNuevaPosicion() {
		//devuelve un arreglo de dos componentes donde la primera corresponde a X y la segunda a Y
		Principal p = nivel.obtenerNavePrincipal();
		int[] resultado = new int[2];

		int posX = (p.getX()+p.getWidth()/2)-escudoActivo.getWidth()/2;
		int posY = (p.getY()+p.getHeight()/2)-escudoActivo.getHeight()/2;


		resultado[0] = posX;
		resultado[1] = posY;

		return resultado;
	}


	public void desactivar() {
		escudoActivadoActualmente = false;
		nivel.quitarMunicion(escudoActivo);
		nivel.obtenerNavePrincipal().invulnerable(false);
	}


	public boolean getEscudoActivadoActualmente() {
		return escudoActivadoActualmente;
	}


	public void disparar(Point location) {
		Principal naveAux = nivel.obtenerNavePrincipal();
		escudoActivo = new MunicionEscudo(this,nivel);

		//posiciones correspondientes centradas sobre la nave
		int posX = (location.x+naveAux.getWidth()/2)-escudoActivo.getWidth()/2;
		int posY = (location.y+naveAux.getHeight()/2)-escudoActivo.getHeight()/2;

		escudoActivo.setLocation(posX, posY);
		escudoActivo.setVisible(true);		
		escudoActivadoActualmente = true;		
		nivel.agregarMunicion(escudoActivo);
		nivel.obtenerNavePrincipal().invulnerable(true);		
	}
}
